import { get, post, postWithQueryParams } from "@/api/request";

/**
 * 萤石云账号管理 控制器 / 萤石云账号管理 控制器添加萤石云账号管理
 * @param {object} data
 * @param {string} [data.accessToken] accessToken
 * @param {string} [data.account] 萤石云账号
 * @param {string} [data.appKey] app_key
 * @param {string} [data.createTime] 创建时间 YYYY-MM-DD HH:mm:ss
 * @param {string} [data.createUser] 创建人
 * @param {boolean} [data.delFlag] 删除标识
 * @param {number} [data.id] 主键id
 * @param {string} [data.password] 萤石云密码
 * @param {number} [data.projectId] 项目id
 * @param {string} [data.secret] secret
 * @param {string} [data.updateTime] 更新时间 YYYY-MM-DD HH:mm:ss
 * @param {string} [data.updateUser] 更新人
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<YingshiAccountManagement页面展示实体>}
 */
export function yingshiAccountManagementAdd(data, config) {
  return post("/yingshiAccountManagement/add", data, config);
}

/**
 * 萤石云账号管理 控制器 / 萤石云账号管理 控制器删除萤石云账号管理
 * @param {object} params
 * @param {object} data
 * @param {string} params.id 萤石云账号管理ID
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<YingshiAccountManagement页面展示实体>}
 */
export function yingshiAccountManagementDelete(params, data, config) {
  return postWithQueryParams("/yingshiAccountManagement/delete", params, data, config);
}

/**
 * 萤石云账号管理 控制器 / 萤石云账号管理 控制器查询萤石云账号管理详情
 * @param {object} params
 * @param {string} params.id 萤石云账号管理ID
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<YingshiAccountManagement页面展示实体>}
 */
export function yingshiAccountManagementDetail(params, config) {
  return get("/yingshiAccountManagement/detail", params, config);
}

/**
 * 萤石云账号管理 控制器 / 萤石云账号管理 控制器分页查询萤石云账号管理
 * @param {object} data
 * @param {string} [data.accessToken] accessToken
 * @param {string} [data.account] 萤石云账号
 * @param {string} [data.appKey] app_key
 * @param {string} [data.createTime] 创建时间 YYYY-MM-DD HH:mm:ss
 * @param {string} [data.createUser] 创建人
 * @param {boolean} [data.delFlag] 删除标识
 * @param {number} [data.id] 主键id
 * @param {number} [data.length] 分页大小
 * @param {number} [data.orderAsc] 排序方向
 * @param {string} [data.orderColum] 排序字段
 * @param {number} [data.pageIndex] 分页下标
 * @param {string} [data.password] 萤石云密码
 * @param {number} [data.projectId] 项目id
 * @param {string} [data.projectName] 项目名称
 * @param {string} [data.secret] secret
 * @param {number} [data.start] 查询记录起始下标
 * @param {string} [data.updateTime] 更新时间 YYYY-MM-DD HH:mm:ss
 * @param {string} [data.updateUser] 更新人
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<分页返回实体<YingshiAccountManagement页面展示实体>>}
 */
export function yingshiAccountManagementList(data, config) {
  return post("/yingshiAccountManagement/list", data, config);
}

/**
 * 萤石云账号管理 控制器 / 萤石云账号管理 控制器不分页查询萤石云账号列表
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<array<YingshiAccountManagement页面展示实体>>}
 * @author 肖玮
 */
export function yingshiAccountManagementListNoPage(config) {
  return get("/yingshiAccountManagement/listNoPage", config);
}

/**
 * 萤石云账号管理 控制器 / 萤石云账号管理 控制器更新萤石云账号管理
 * @param {object} data
 * @param {string} [data.accessToken] accessToken
 * @param {string} [data.account] 萤石云账号
 * @param {string} [data.appKey] app_key
 * @param {number} [data.id] 主键id
 * @param {string} [data.password] 萤石云密码
 * @param {number} [data.projectId] 项目id
 * @param {string} [data.secret] secret
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<YingshiAccountManagement页面展示实体>}
 */
export function yingshiAccountManagementUpdate(data, config) {
  return post("/yingshiAccountManagement/update", data, config);
}

/**
 * @template T
 * @typedef {Object} 分页返回实体
 * @property {T[]} content - 内容
 * @property {number} elementsNo
 * @property {number} limit
 * @property {number} number
 * @property {number} totalElements
 * @property {number} totalPages
 * @description 分页返回实体
 */

/**
 * @typedef {object} YingshiAccountManagement页面展示实体 萤石云账号管理页面展示实体
 * @property {string} accessToken
 * @property {string} account 萤石云账号
 * @property {string} appKey app_key
 * @property {boolean} canDelete 是否拥有删除权限
 * @property {boolean} canEdit 是否拥有编辑权限
 * @property {string} createTime 创建时间
 * @property {string} createUser 创建人
 * @property {string} createUserDeptName 创建人所属部门
 * @property {string} createUserRealName 创建人真实姓名
 * @property {boolean} delFlag 删除标识
 * @property {number} id 主键id
 * @property {string} password 萤石云密码
 * @property {number} projectId 项目id
 * @property {string} secret secret
 * @property {string} updateTime 更新时间
 * @property {string} updateUser 更新人
 * @description 萤石云账号管理页面展示实体
 */
